Priority Queues and Dijkstra ’ s Algorithm ∗

نویسندگان

  • Mo Chen
  • Rezaul Alam Chowdhury
  • Vijaya Ramachandran
  • David Lan Roche
  • Lingling Tong
چکیده

We study the impact of using different priority queues in the performance of Dijkstra’s SSSP algorithm. We consider only general priority queues that can handle any type of keys (integer, floating point, etc.); the only exception is that we use as a benchmark the DIMACS Challenge SSSP code [1] which can handle only integer values for distances. Our experiments were focussed on the following: 1. We study the performance of two variants of Dijkstra’s algorithm: the well-known version that uses a priority queue that supports the Decrease-Key operation, and another that uses a basic priority queue that supports only Insert and Delete-Min. For the latter type of priority queue we include several for which high-performance code is available such as bottom-up binary heap, aligned 4-ary heap, and sequence heap [33]. 2. We study the performance of Dijkstra’s algorithm designed for flat memory relative to versions that try to be cache-efficient. For this, in main part, we study the difference in performance of Dijkstra’s algorithm relative to the cache-efficiency of the priority queue used, both in-core and out-of-core. We also study the performance of an implementation of Dijkstra’s algorithm that achieves a modest amount of additional cache-efficiency in undirected graphs through the use of two cache-efficient priority queues [25, 12]. This is theoretically the most cache-efficient implementation of Dijkstra’s algorithm currently known. Overall, our results show that using a standard priority queue without the decrease-key operation results in better performance than using one with the decrease-key operation in most cases; that cache-efficient priority queues improve the performance of Dijkstra’s algorithm, both in-core and out-of-core on current processors; and that the dual priority queue version of Dijkstra’s algorithm has a significant overhead in the constant factor, and hence is quite slow in in-core execution, though it performs by far the best on sparse graphs out-of-core. ∗Supported in part by NSF Grant CCF-0514876 and NSF CISE Research Infrastructure Grant EIA-0303609. †National Instruments Corporation, Austin, TX. ‡Department of Computer Sciences, University of Texas, Austin, TX. Email:[email protected]. §Department of Computer Sciences, University of Texas, Austin, TX. Email:[email protected]. ¶Google Inc., Mountain View, CA. ‖Microsoft Corporation, Redmond, WA. 0

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

2D Path Planning Based on Dijkstra's Algorithm and Pseudo Priority Queues

This paper presents the application of the PPQ Dijkstra approach for solving 2D path planning problems. The approach is a Dijkstra process whose priority queue (PQ) is implemented through a Pseudo Priority Queue (PPQ) also known as Untidy PQ. The performance of the optimization process is dramatically improved by the application of the PPQ. This modification can be used for a family of problems...

متن کامل

Pseudo Priority Queues for Real-Time Performance on Dynamic Programming Processes Applied to Path Planning

A family of approaches for the implementation of Dynamic Programming optimization can be improved for real time applications if the queuing stage is improved. The computational cost of maintaining a priority queue (PQ) for the standard Dijkstra’s algorithm has a theoretical lower bound that is function of the queue population. However a perfect PQ is not a necessary condition for implementing t...

متن کامل

Experimental Study of High Performance Priority Queues

The priority queue is a very important and widely used data structure in computer science, with a variety of applications including Dijkstra’s Single Source Shortest Path algorithm on sparse graph types. This study presents the experimental results of a variety of priority queues. The focus of the experiments is to measure the speed and performance of highly specialized priority queues in out-o...

متن کامل

An Efficient Construction Algorithm for a Class of Implicit Double-Ended Priority Queues

Priority queues and double-ended priority queues are fundamental data types in Computer Science, and various data structures have been proposed to implement them. In particular, diamond deques, interval heaps, min-max-pair heaps, and twin-heaps provide implicit structures for double-ended priority queues. Although these heap-like structures are essentially the same when they are presented in an...

متن کامل

A Parallel Priority Data Structure with Applications

We present a parallel priority data structure that im proves the running time of certain algorithms for prob lems that lack a fast and work e cient parallel solu tion As a main application we give a parallel imple mentation of Dijkstra s algorithm which runs in O n time while performing O m log n work on a CREW PRAM This is a logarithmic factor improvement for the running time compared with pre...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007